package com.puhui.lib.network.interceptors;

import android.util.Log;

import com.puhui.lib.BuildConfig;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class AndroidLogger implements HttpLoggingInterceptor.Logger {
    public static final boolean canLog = BuildConfig.DEBUG;
    public static final String LINE_SEPARATOR = "\n";
    private static final String TAG = "HttpLog";

    @Override
    public void log(String message) {
        if (!canLog) return;
        Log.i(TAG, message);
    }

    @Override
    public void logJson(String msg) {
        if (!canLog) return;
        String message;
        try {
            if (msg.startsWith("{")) {
                JSONObject jsonObject = new JSONObject(msg);
                message = jsonObject.toString(4); //最重要的方法，就一行，返回格式化的json字符串，其中的数字4是缩进字符数
            } else if (msg.startsWith("[")) {
                JSONArray jsonArray = new JSONArray(msg);
                message = jsonArray.toString(4);
            } else {
                message = msg;
            }
        } catch (JSONException e) {
            message = msg;
        }

        printLine(TAG, true);
//        message = " " + LINE_SEPARATOR + message;
//        message = message.replace(LINE_SEPARATOR, "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t");
//        Log.d(TAG, message);

        message = LINE_SEPARATOR + message;
        String[] lines = message.split(LINE_SEPARATOR);
        for (String line : lines) {
            Log.d(TAG, line);
        }
        printLine(TAG, false);
    }

    public static void printLine(String tag, boolean isTop) {
        if (!canLog) return;
        if (isTop) {
            Log.d(tag, "╔═══════════════════════════════════════════════════════════════════════════════════════");
        } else {
            Log.d(tag, "╚═══════════════════════════════════════════════════════════════════════════════════════");
        }
    }
}
